package com.xxzb.pack0824.线程池;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;

/**
 * Callable的线程任务类，该类实现Callable接口
 * 该类重写Callable接口的call方法
 * call方法是一个带有返回值和抛出异常的方法
 *  call方法的返回类型与Callable接口中定义的泛型是一致的
 */
public class CallableTask implements Callable<Integer> {
    /**
     * 该方法为线程任务方法，其中用于编写线程要执行的代码
     * 该方法和Runnable接口中的run方法一致
     * @return
     * @throws Exception
     */
    @Override
    public Integer call() throws Exception {
        int sum = 0;
        for (int i = 0; i < 100; i++) {
            if(Thread.currentThread().isInterrupted()){
                return null;
            }
            sum=sum+i;
            System.out.println(Thread.currentThread().getName()+":"+i);
           /* try {
                //Thread.sleep(1000);
                TimeUnit.MILLISECONDS.sleep(10);//使用并发包中的休眠
            } catch (InterruptedException e) {
                e.printStackTrace();
            }*/
        }
        return sum;
    }
}
